1. Field of the Invention
The disclosed methods and systems relate generally to connections between computers and printers, and more particularly to automatically establishing connections between computers and network printers.
2. Background Information
At least two types of printer connections that may be made to a computer connected to a network are known in the art: (i) a local printer connection, and (ii) a network printer connection. Each connection requires that there be a communications path between the computer and the printer, and that the driver associated with the printer be installed on the computer.
Three types of printers may be recognized: local printers, network printers, and shared printers. A local printer may be understood to be a printer that is connected directly to a physical port (such as, but not limited to a serial port, parallel port, USB port, or other port) on a computer (referred to herein as a “local computer”). A dedicated wire or wireless communications path connects the local computer, via the physical port, to the local printer. Additionally, the driver/drivers associated with the local printer must be present on the local computer. The driver/drivers may be but are not limited to computer software installed on a computer to enable the computer to use a specific type or types of printer, in this case the local printer. When the operating system of the local computer receives a print command, it knows how to internally process that command and the data to be printed. Thus, the operating system sends the command and the data to be printed to the physical port for transmission to the local printer. Before the command is internally processed and sent to the local printer, the driver configures the print command and the data so that the local printer is able to understand the command and the data, and thus the local printer is able to print the data after it and the print command are received from the local computer.
If a local printer is “shared” from the local computer to which it is connected, such that other computers with a communications path to the local computer may use the printer, the printer may be known as a shared printer, or a shared local printer, and the local computer may itself be referred to as a print server or a proxy. For a computer to use the shared printer connection, the operating system of that computer must be able to communicate with the operating system of the local computer. Thus, after the driver processes the print command and the data, but before the print command is sent over the communications path to the local computer, it must first pass through an operating system-specific protocol stack. This protocol stack further formats the command and the data so that when the operating system of the local computer receives these from its interface with the communications path, it is able to interpret the command and the data and internally process them so that they are communicated over the local printer connection to the local printer. Without this additional layer of formatting, the local computer would not know how to internally process the print command and the data so that it was communicated to the local printer via the local printer connection.
Thus, a shared printer may be considered a local printer that is accessed indirectly though a local computer and may be understood to be a printer that is locally connected to the local computer, with that local printer connection “shared” from the local computer with other computers on a network. Shared printers may thus be accessed and used from computers on a network other than the local computer to which the shared printer is locally connected.
When a local printer connection is shared, the operating system on the local computer creates a share for the driver/drivers associated with the local printer. A share is a logical construct or object that exposes a resource (such as the driver/drivers associated with the local printer, or the local printer itself) to other computers in network communication with the local computer. Upon creation of the share, both the local printer and the driver/drivers associated with it are then available to be accessed by any other computer or device on the network. The location of a share is typically defined by a path to the computer that provides the share. The path is described according to the hierarchy of the network, and for a driver in a share typically includes the name of the computer that provides the share and the name of the driver file itself.
In contrast to a shared printer, a network printer resides on the computer network, may be directly accessed by any computer connected to the network, and such access does not require the existence of a local computer connected to the printer acting as a print server. Thus, because the local computer is not present, unlike what occurs with a shared printer connection, the print command and the data to be printed do not pass through the operating system-specific protocol stack before being communicated over the network to the network printer. The other steps in the process (i.e., the print command and the data being formatted by the driver for the network printer, and these being transmitted over the network to the network printer according to the network's protocol) remain the same. Thus, the additional layer of processing overhead present in a shared printer connection, so that the computer generating the print command is able to communicate with the local computer that is sharing its local printer connection, is not necessary.
In managed computer networks, it is often important to automate configuration of connections between computers on the network and shared and/or network printers. The connection of shared printers to a computer or computers on the network may be facilitated by an operating system (e.g., any of the Windows® brand of operation systems) that may include a feature or set of functions or instructions that allow for automatically configuring the connection. This automatic configuration may be initiated manually (such as by selecting options within the printer configuration menu in the Windows® Control Panel) or programmatically (such as by calling/executing an instruction or set of instructions, for example but not limited to, routines provided by a Windows®-specific Application Programming Interface (API) that create the connection). Administration products commonly utilize a shared printer connection API to connect printers to one or more computers. This prevents the end-user of each computer, or the administrator of the network, from having to manually establish the connection to the shared printer from each network computer. Shared printers, via the local computer to which they are connected, thus share their printer connection and printer drivers, as described above. Accordingly, a complicated part of configuring the connection between a computer and a shared printer is automatically handled by the shared printer connection API, as it transfers the shared printer's drivers from the share-providing computer to the other computer(s) that will use the shared printer via the shared printer connection.
Network printers typically offer much better performance than shared printers, as a network printer connection is more robust and requires less processing overhead than a shared printer connection. Thus, network printer connections are widely used in corporate networks. However, establishing network printer connections between network printers and computers on the network is generally significantly different from establishing shared printer connections. When establishing shared printer connections, preexisting APIs may use the parameters of the already-existing local printer connection, including the location of the driver in the share, to configure the shared printer connections. However, when establishing network printer connections, because network printers do not have a local printer connection to a local computer, and thus no already-existing share for the printer and its driver/drivers, network printers typically lack the facility and/or capability for transferring and/or sharing their drivers with other devices on the network, which shared printer connections are able to do easily, as described above.
Thus, a user may be required to perform a software installation process (e.g., but not limited to, running a setup program, designed for the particular printer, from a readable medium such as a compact disk, floppy disk, etc.) on each computer. This process is complicated for end-users, and introduces an additional management burden even if performed by network administrators. Thus, the easy steps described above used to manually establish and configure a shared printer connection may not work. Additionally, to automate the process of establishing network printer connections without having a pre-existing API/APIs or its equivalent(s) may become very complicated. Therefore, a great deal of time and effort is required for end-users or network administrators to establish and configure network printer connections.